package mq.dao.mapper;

import mq.domain.MqMessageCumulate;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @description: 消息堆积记录(MqMessageCumulate)
 * @author: zk
 * @since: 2022-08-16 13:39:29
 */
public interface MqMessageCumulateMapper {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    MqMessageCumulate queryById(Long id);

    /**
     * 新增数据
     *
     * @param mqMessageCumulate 实例对象
     * @return 影响行数
     */
    int insert(MqMessageCumulate mqMessageCumulate);
 
    /**
     * 批量新增数据
     *
     * @param list 实例对象列表
     * @return 影响行数
     */
    int insertBatch(List<MqMessageCumulate> list);

    /**
     * 批量新增或按主键更新数据
     *
     * @param list 实例对象列表
     * @return 影响行数
     * @throws org.springframework.jdbc.BadSqlGrammarException
     *         入参是空List的时候会抛SQL语句错误的异常，请自行校验入参
     */
    int insertOrUpdateBatch(List<MqMessageCumulate> list);

    /**
     * 修改数据
     *
     * @param mqMessageCumulate 实例对象
     * @return 影响行数
     */
    int updateById(MqMessageCumulate mqMessageCumulate);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Long id);

    /**
     * 通过状态查询
     *
     * @param preId
     * @param statusList
     * @param busiNo
     * @param pageSize
     * @return
     */
    List<MqMessageCumulate> queryByStatus(@Param("preId") Long preId,
                                          @Param("statusList") List<Integer> statusList,
                                          @Param("busiNo") String busiNo,
                                          @Param("pageSize") int pageSize);

    /**
     * 更新状态
     *
     * @param ids
     * @param status
     */
    void updateStatusByIds(@Param("ids") List<Long> ids, @Param("status") Integer status);
}

